비록 포인트와이즈 연산 텐서의 각 요소를 독립적으로 처리하면, 축소 패턴 여러 입력 요소가 하나의 출력 값(예: 합계, 최대값, 평균 등)으로 압축되는 데이터 종속성을 도입합니다. 이를 효율적으로 구현하려면 데이터의 논리적 2차원 구조와 하드웨어 메모리 내에서의 선형 표현 사이의 격차를 메워야 합니다.
1. 2차원 메모리 매핑
2차원 텐서는 논리적으로 격자 구조지만 실제로는 RAM에서 선형으로 저장됩니다. 이해해야 할 점은 행 우선 대비하여 열 우선 배치 방식이 중요합니다. 축소 연산이 연속된 메모리 주소를 순회하는지, 아니면 간격을 두고 접근해야 하는지를 판단하기 때문입니다.
2. 포인트와이즈 대비 축소 구조
한 행렬 복사 입력과 출력이 $1:1$로 매핑되는 포인트와이즈 연산을 나타냅니다. 반면에, 축소 여러 개의 입력을 하나의 출력으로 집계하는($N:1$) 연산으로, 스레드 간 공유 누적 또는 블록 내에서 순차 처리가 필요합니다.
3. 차원 축소
축소는 축 연산의 기준이 됩니다. 축 1(행)을 따라 축소하는 것과 축 0(열)을 따라 축소하는 것은 메모리 스타이드 패턴과 하드웨어 캐시 성능에 근본적인 영향을 미칩니다.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>